package com.gaofei.service.impl;

import java.util.List;

import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

import com.gaofei.dao.SkuMapper;
import com.gaofei.domain.Sku;
import com.gaofei.domain.SkuVo;
import com.gaofei.domain.SpecOption;
import com.gaofei.service.SkuService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

@Service
public class SkuServiceImpl implements SkuService{

	@Autowired
	SkuMapper skuMapper;
	@Override
	public PageInfo<Sku> list(int pageNum, int pageSize, SkuVo vo) {
		PageHelper.startPage(pageNum, pageSize);
		
		
		return new PageInfo<>(skuMapper.list(vo));
	}
	@Override
	public int delBatch(String ids) {
		return skuMapper.delBatch(ids);
	}
	@Override
	public void addSku(Sku sku, Integer[] specIds, Integer[] optionIds) {
		//1.添加sku,并且记住返回sku的id用来保存到商品规格中间表,//2.添加中间表		
		
		skuMapper.addSku(sku);//这里sku的id是数据库自动生成并返回过来的
		
		//2.添加中间表		
		
		for (int i = 0; i < optionIds.length; i++) {
			skuMapper.addSkuSpec(specIds[i],optionIds[i],sku.getId());
		}
	}
	@Override
	public Sku findSkuBySkuID(Integer skuId) {
		return skuMapper.findSkuBySkuID(skuId);
	}
	@Override
	public void update(Sku sku, Integer[] specIds, Integer[] optionIds) {
		skuMapper.update(sku);//1.修改sku表
		//2.先删除中间表sku_spec
		skuMapper.deleteSkuSpecBySkuId(sku.getId());
		//3.添加中间表
		for (int i = 0; i < optionIds.length; i++) {
			skuMapper.addSkuSpec(specIds[i],optionIds[i],sku.getId());
		}
		
	}
	@Override
	public List<Sku> findSkuBySpuId(Integer spuId) {
		return skuMapper.findSkuBySpuId(spuId);
	}
	@Override
	public List<SpecOption> findOptionBySkuId(Integer skuId) {
		return skuMapper.findOptionBySkuId(skuId);
	}

}
